package biblioteca;

import java.util.List;

public abstract class Item {
	private int status,
				numeroDeUsos;
	
	private Usuario usuarioAtual;
	private List<Integer> notas;
	
	private final int DISPONIVEL = 0,
						OCUPADO = 1;
	
	public Item(Usuario usuarioAtual) {
		setUsuarioAtual(usuarioAtual);
		this.status = DISPONIVEL;
	}
	
	public boolean estaOcupado() {
		return status == OCUPADO ? true : false;
	}

	public void mudaStatus() {
		if(status == OCUPADO)
			status = DISPONIVEL;
		else
			status = OCUPADO;
	}

	public Usuario getUsuarioAtual() {
		return usuarioAtual;
	}
	
	public void setUsuarioAtual(Usuario usuario) {
		this.usuarioAtual = usuario;
	}

	public double calculaMedia() {
		double soma = 0.0;
		
		for(int nota : notas)
			soma += nota;
		
		return ( soma / notas.size() );
	}

	public void adicionaNota(int nota) {
		notas.add(nota);
	}
	
	public void removeNota(int nota) {
		notas.remove(nota);
	}
	
	public void alteraNota(int notaAntiga, int notaNova) {
		removeNota(notaAntiga);
		adicionaNota(notaNova);
	}

	public int getNumeroDeUsos() {
		return numeroDeUsos;
	}

	public void adicionaUso() {
		numeroDeUsos += 1;
	}
}
